#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "events.h"
#include "personnel.h"
/*struct parcours
{

char ID[20];
char chemin [100];
};

typedef struct parcours parcours;
parcours tab [200] ;
char event []="evenements.log";

char parcoursstandard[]="E01C01S01L01l02C02V01I01D01B01M01SoutPoutEbola";*/
/*********************************************************************************************************************************************/
/*Fonction pour calculer nombre de ligne*/
/*********************************************************************************************************************************************/
int nbrlignes ( /*char event[]*/)
{  char event []="evenements.log";
   FILE *f;

   f=fopen(event, "r");
   int nblignes = 0;
   char lg [100] ;
if (f==NULL){return -1;}

rewind(f);
      while(fgets(lg,100, f) != NULL)
    {

      nblignes++;

        }

  fclose (f) ;
  return nblignes;
}
/*********************************************************************************************************************************************/
/*Fonction pour remplir le tableau du chaque medecin avec son chemin*/
/*********************************************************************************************************************************************/

int  remplissage ( /*char event[] */int N,parcours tab [])
{ char event []="evenements.log"; 
int i =1;
   int n ;
   int v, v2;
   char matricule [20];
   char capteur[100] ;
   char chaine [200] ;
   char  temps[10];
   FILE *f;


   f=fopen(event, "r");
for(i=0;i<N;i++)
{
strcpy(tab[i].ID," ");
}
fgets(chaine, 200, f) ;
sscanf (chaine, "%s %s %s" , temps ,matricule , capteur );
strcpy(tab[0].ID,matricule);
  strcpy(tab[0].chemin,capteur);
   n=1;
 while (fgets(chaine, 200, f) !=NULL)
   {
     sscanf (chaine, "%s %s %s" , temps ,matricule , capteur );

       v=0;


    i=0;
while( (i<N) && (v==0) )
{
if( strcmp(tab[i].ID,matricule)==0 )
{
strcat(tab[i].chemin,capteur);v=1;
}
if( strcmp(tab[i].ID," ")==0 )
{
strcpy(tab[i].ID,matricule);
strcpy(tab[i].chemin,capteur);
                        n++;
v=1;
}
                i++;

}
   }

fclose (f) ;
return(n);
}



/*********************************************************************************************************************************************/
/*Fonction pour afficher les alertes*/
/*********************************************************************************************************************************************/
void afficheridentificateur(char fichier_personnel[],char alerte[],char medecin[])
{ personnel p;
char parcoursstandard[]="E01C01S01L01l02C02V01I01D01B01M01SoutPoutEbola";
FILE *f;
int n,N,i,j;

char chtel[20];
char chcin[20];

N=nbrlignes ();
n=remplissage (N,tab);
strcpy(alerte," ");
strcpy(medecin," ");

       for (i=0;i<n;i++)
{    for(j=0;j<strlen(parcoursstandard)+1;j++)
     {


  if (parcoursstandard[j]!=tab[i].chemin[j])

{
            strcat (alerte,"Alerte !! ");

strcat(alerte,",l'id");
strcat(alerte,tab[i].ID);
strcat(alerte,"a fait un faux parcours:");
strcat(alerte,tab[i].chemin);
strcat(alerte,"\n");

             break ;
}


            }

f=fopen(fichier_personnel, "rb");



  if (f!=NULL)
 {

   while(fread(&p,sizeof(personnel),1,f)!=0)

              {
       if (strcmp(tab[i].ID,p.matricule)==0)
           {
                    strcat(medecin,"\n Nom:");
                    strcat(medecin,p.nom);
                    strcat(medecin," Prenom");
                    strcat(medecin,p.prenom);
                    strcat(medecin," Matricule:");
                    strcat(medecin,p.matricule);
                    strcat(medecin," Mail:");
                    strcat(medecin,p.mail);

                    sprintf(chcin, "%d  ",p.cin);
                    strcat(medecin," CIN:");
                    strcat(medecin,chcin);
                    
                    sprintf(chtel, "%d  ",p.telephone);
                    strcat(medecin," Telephone:");
                    strcat(medecin,chtel);

                    strcat(medecin," Statut: ");
                    strcat(medecin,p.statue);
                    strcat(medecin,"   Photo:%s  ");
                    strcat(medecin,p.photo);
                    strcat(medecin,"\n");


 }

        }
                 }
fclose(f);


      }
}


/*********************************************************************************************************************************************/
/*Fonction pour rechercher le chemin d'un medecin*/
/*********************************************************************************************************************************************/
void rechercheparcours(char lechemin[50],char id[200])
{
int i,n,N;

strcpy(lechemin," ");
N=nbrlignes ();
n=remplissage (N,tab);


   for (i=0;i<n;i++)
    {

       if(strcmp(id,tab[i].ID)==0)

           {   strcat(lechemin,"le parcours qu'a fait l'id");
               strcat(lechemin,tab[i].ID);
               strcat(lechemin,"est");
               strcat(lechemin,tab[i].chemin);
                strcat(lechemin,"\n");
                 break;

            }
 if(i=n-1)
            { strcpy(lechemin,"\n l'id que vous avez entre n'existe pas\n");}
    
 }


}

